using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

using PMServiceDesk.BusinessLogic;
using PMServiceDesk.DataType;
using PMServiceDesk.Utils.Interfaz;
using PMServiceDesk.Parameters.Constantes;

namespace PMServiceDesk.Web.AppCode
{
    public class HistorialEstadoPaqueteTrabajoView
    {
        public List<HistorialEstadoPaqueteTrabajoType> HistorialEstadoPaqueteTrabajos { get; set; }
        public int TotalRegistros { get; set; }
        public HistorialEstadoPaqueteTrabajoType HistorialEstadoPaqueteTrabajo { get; set; }
        public bool NuevoRegistro { get; set; }
    }

    public class HistorialEstadoPaqueteTrabajoIU
    {
        public static HistorialEstadoPaqueteTrabajoView Listar(HistorialEstadoPaqueteTrabajoType registroBusqueda, int paginaActual, int cantidadMostrar, string orderBy)
        {
            HistorialEstadoPaqueteTrabajoLogic logic = new HistorialEstadoPaqueteTrabajoLogic();

            HistorialEstadoPaqueteTrabajoView view = new HistorialEstadoPaqueteTrabajoView();

            view.HistorialEstadoPaqueteTrabajos = logic.CargarExploradorPaginado(registroBusqueda, paginaActual, cantidadMostrar, orderBy);
            view.TotalRegistros = view.HistorialEstadoPaqueteTrabajos.Capacity;

            return view;
        }

        public static string ExportarExcel(HistorialEstadoPaqueteTrabajoType registroBusqueda, List<GridJSONField> gridFields)
        {
            HistorialEstadoPaqueteTrabajoLogic logic = new HistorialEstadoPaqueteTrabajoLogic();

            List<HistorialEstadoPaqueteTrabajoType> l = logic.CargarExploradorPaginado(registroBusqueda);

            return InterfazUtils.FileTableHTMLGridJSON(l, gridFields, ArchivoConfig.FileServer, Sesion.Usuario.Usuario, "HistorialEstadoPaqueteTrabajos", ExtensionesArchivos.Excel2003);
        }

        public static HistorialEstadoPaqueteTrabajoView Cargar(string id)
        {
            HistorialEstadoPaqueteTrabajoView view = new HistorialEstadoPaqueteTrabajoView();

            if (id == null) return view;

            HistorialEstadoPaqueteTrabajoLogic logic = new HistorialEstadoPaqueteTrabajoLogic();

            view.HistorialEstadoPaqueteTrabajo = logic.CargarPorId(id);

            return view;
        }

        public static HistorialEstadoPaqueteTrabajoView Grabar(HistorialEstadoPaqueteTrabajoType registro)
        {
            HistorialEstadoPaqueteTrabajoView view = new HistorialEstadoPaqueteTrabajoView();
            view.NuevoRegistro = (registro.Id == "0");

            HistorialEstadoPaqueteTrabajoLogic logic = new HistorialEstadoPaqueteTrabajoLogic();
            logic.Grabar(registro);

            view.HistorialEstadoPaqueteTrabajo = registro;

            return view;
        }

        public static string Eliminar(string id)
        {
            HistorialEstadoPaqueteTrabajoLogic logic = new HistorialEstadoPaqueteTrabajoLogic();
            logic.Eliminar(id);

            return id;
        }
    }
}
